In addition to conventional web pages, such as Hypertext Markup Language (“HTML”) pages, the internet provides many machine data sources that may provide data directly to a computing device in response to a request. A uniform resource locator (“URL”) may, for example, provide access to, and a set of Hypertext Transfer Protocol (“HTTP”) methods for interacting with, a front end providing an Application Programming Interface (“API”), a Really Simple Syndication (“RSS”) feed, or other interfaces/feeds. An API generally includes a set of HTTP request messages along with the definition of the structure of response messages, for example in JavaScript Object Notation (“JSON”) or Extensible Markup Language (“XML”). Current APIs have moved away from being synonymous with “web services” toward Representational State Transfer (“REST”) style architecture. REST architectures include clients who initiate requests to servers and servers that process the requests and return appropriate responses. A REST-ful API generally includes a Uniform Resource Indicator (“URI”) for the API, a type of data supported by the API (e.g., XML, JSON, or any other supported data type), and a set of HTTP methods. Thus, any client may interact with any server by using a set of operations supported by HTTP methods (e.g., GET, PUT, POST, and DELETE) in conjunction with the URI. Further referenced APIs may be considered REST-ful APIs.
In web development, a “mashup” may be defined as a web page or application that uses and combines data, presentation or functionality from two or more data sources to create new services (e.g., a new website, API, or syndication feed). Published APIs allow for the combination of multiple services or data sources into mashups. However, creation of a mashup generally requires custom coding to directly retrieve data from various APIs, databases, search indexes, or other data sources, and requires custom logic be built, for example in Java, to manually parse through the retrieved data. Conventional methods for creating mashups fail to provide a convenient way to combine together the data from various data sources to deliver downstream, for example for syndication.
Applications and tools have been created to assist with creation of mashups. For example, YAHOO!™ PIPES is a web application that provides a graphical user interface for building data mashups that aggregate web feeds, web pages, and other services to create web-based applications. However, such systems do not allow a user to modify the rendering of the data provided by the feeds and services. Additionally, such systems limit data sources useful for creation of a mashup to HTML data sources, while it may be desirable to mashup data from alternative data sources, for example MICROSOFT™ EXCEL™ files, MICROSOFT™.PST files, or any other data sources.
While the system and method is described herein by way of example and embodiments, those skilled in the art recognize that methods and systems for API mashups are not limited to the embodiments or drawings described. It should be understood that the drawings and description are not intended to limit embodiments to the particular form disclosed. Rather, the intention is to cover all modifications, equivalents and alternatives falling within the spirit and scope of the appended claims. Any headings used herein are for organizational purposes only and are not meant to limit the scope of the description or the claims. As used herein, the word “may” is used in a permissive sense (i.e., meaning having the potential to), rather than the mandatory sense (i.e., meaning must). Similarly, the words “include”, “including”, and “includes” mean including, but not limited to.